#include "skip_list.hpp"
#include <string>
#include <iostream>

int main()
{

#if 1
    SkipList<int, std::string>* sList = SkipList<int, std::string>::create_skip_list(6);
    sList->insert(0,    "beia", true);
    sList->insert(1,    "beijing");
    sList->insert(2,    "shanghai");
    sList->insert(3,    "henan");
    sList->insert(30,   "yunnan");
    sList->insert(100,  "ll");
    sList->insert(15,   "hahahah");
    sList->insert(-17,  "nan");
    sList->insert(-3,   "hhhf");
    sList->insert(4,    "wusu");
    sList->insert(11,   "a");
    sList->insert(12,   "b");
    sList->insert(31,   "c");
    sList->insert(-30,  "d");
    sList->insert(100,  "e");                       // 插入失败
    sList->insert(15,   "f");                       // 插入失败
    sList->insert(-117, "g");
    sList->insert(-8,   "h");
    sList->insert(5,    "i");
    sList->insert(-117, "aaaaaaaaaaaaaa", true);    // 替换
    sList->insert(100,  "bbbbbbbbbbbbbb", true);    // 替换

    sList->traverse();

    // std::string a;
    // if (sList->find(0, a))
    // {
    //     std::cout << "0:" << a << std::endl;
    // }
    // else
    // {
    //     std::cout << "0" << std::endl;
    // }

    // if (sList->find(-117, a))
    // {
    //     std::cout << "-117:" << a << std::endl;
    // }
    // else
    // {
    //     std::cout << "-117" << std::endl;
    // }

    // if (sList->find(999, a))
    // {
    //     std::cout << "999:" << a << std::endl;
    // }
    // else
    // {
    //     std::cout << "999" << std::endl;
    // }


    std::cout << "======================" << std::endl;
    sList->erase(999);
    sList->erase(-117);
    sList->erase(0);
    sList->erase(100);
    sList->erase(7);
    sList->traverse();

#else
    int *a = (int*)0x1111;
    int *&b = a;
    b = (int*)0x2222;
    std::cout << "a:" << a << std::endl;
    std::cout << "b:" << b << std::endl;
#endif
    return 0;
}
